(define substitute
  (native_function "
    Proc.new do |arguments, interpreter|
      arg1 = interpreter.evaluate(arguments[0])
      arg2 = interpreter.evaluate(arguments[1])
      arg3 = interpreter.evaluate(arguments[2])
      arg1.gsub(arg2, arg3)
    end
  "))
